package com.wang.common.valid;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.HashSet;
import java.util.Set;

/**
 * @Auther: wangliuyang
 * @Date: 2021/3/22 10:54
 * @Description:
 */
public class ListValueConstraintValidator implements ConstraintValidator<ListValue/*注解的类型，即当前校验器由哪个注解绑定的*/,Integer/*所校验数据几类型*/> {
    private Set<Integer> set=new HashSet<>();
    /**
     * Desc:校验器的初始化方法
     * @param constraintAnnotation 拿到修饰的注解，（可以通过注解拿到注解上的信息，value等）
     * @return
     * @author wangliuyang
     * @date
     */
    @Override
    public void initialize(ListValue constraintAnnotation) {
        int[] value = constraintAnnotation.value();
        for (int i : value) {
            set.add(i);
        }

    }
/**
 * Desc:校验器验证是都符合验证的方法
 * @param value 用户传入的值
 * @param context
 * @return {@link boolean}
 * @author wangliuyang
 * @date
 */
    @Override
    public boolean isValid(Integer value, ConstraintValidatorContext context) {
        return  set.contains(value);
    }
}

